Simple visual proposal for JEM developers: keep the standard XML field for each custom area, but let each field use a single preset dropdown.
<field name="custom1" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD1" description="COM_JEM_EVENT_CUSTOM_FIELD1_DESC" /><field name="custom2" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD2" description="COM_JEM_EVENT_CUSTOM_FIELD2_DESC" /><field name="custom3" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD3" description="COM_JEM_EVENT_CUSTOM_FIELD3_DESC" /><field name="custom4" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD4" description="COM_JEM_EVENT_CUSTOM_FIELD4_DESC" /><field name="custom5" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD5" description="COM_JEM_EVENT_CUSTOM_FIELD5_DESC" /><field name="custom6" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD6" description="COM_JEM_EVENT_CUSTOM_FIELD6_DESC" /><field name="custom7" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD7" description="COM_JEM_EVENT_CUSTOM_FIELD7_DESC" /><field name="custom8" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD8" description="COM_JEM_EVENT_CUSTOM_FIELD8_DESC" /><field name="custom9" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD9" description="COM_JEM_EVENT_CUSTOM_FIELD9_DESC" /><field name="custom10" type="text" size="20" readonly="false" class="inputbox" label="COM_JEM_EVENT_CUSTOM_FIELD10" description="COM_JEM_EVENT_CUSTOM_FIELD10_DESC" />